Semantic Hierarchy Refactoring by Abstract Interpretation
نویسندگان
چکیده
A semantics-based framework is presented for the definition and manipulation of class hierarchies for object-oriented languages. The framework is based on the notion of observable of a class, i.e., an abstraction of its semantics when focusing on a behavioral property of interest. We define a semantic subclass relation, capturing the fact that a subclass preserves the behavior of its superclass up to a given (tunable) observed property. We study the relation between syntactic subclass, as present in mainstream object-oriented languages, and the notion of semantic subclass. The approach is then extended to class hierarchies, leading to a semantics-based modular treatment of a suite of basic observablepreserving operators on hierarchies. We instantiate the framework by presenting effective algorithms that compute a semantic superclass for two given classes, that extend a hierarchy with a new class, and that merge two hierarchies by preserving semantic subclass relations.
منابع مشابه
Analysis of disassembled executable codes by abstract interpretation
The aim of this paper is to dene the abstract domain, abstract operator, abstract semantic, the environments and states of disassembled executable codes as well as a way to analysis the disassembled executable codes. Nowadays, static analysis on disassembled code going to grow. Reverse engineering and malware analysis use this technique. Thus, we tried to perform pluralization the requirements ...
متن کاملAn Integrated Model of Semantic and Conceptual Interpretation from Dependency Structures
We propose a two-layered model for computing semantic and conceptual interpretations from dependency structures. Abstract interpretation schemata generate semantic interpretations of `minimal' dependency subgraphs, while production rules whose speci cation is rooted in ontological categories derive a canonical conceptual interpretation from semantic interpretation structures. Con gurational des...
متن کاملClone Detection by Comparing Abstract Memory States
In this paper, we propose a new semantic clone detection technique by comparing programs’ abstract memory states, which are computed by a semantic-based static analyzer. Our experimental study using three large-scale open source projects shows that our technique can detect semantic clones that existing syntacticor semantic-based clone detectors miss. Our technique can help developers identify i...
متن کاملSemantic Class Hierarchies by Abstract Interpretation
A generic semantic-based framework is presented for the definition and manipulation of class hierarchies for object-oriented languages. The framework is based on the notion of observable of a class, i.e. an abstraction of its semantics when focussing on a behavioral property of interest. By exploiting such a notion, we define the semantic subclass relation, capturing the fact that a subclass pr...
متن کاملKABA - a system for refactoring Java programs
Refactoring is a well known technique to enhance various aspects of an object-oriented program. It has become very popular during recent years, as it allows to overcome deficits present in many programs. Doing refactoring by hand is almost impossible due to the size and complexity of modern software systems. Automated tools provide support for the application of refactorings, but do not give hi...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006